package com.fangyi.yunmusic.pojo.es;

import com.fasterxml.jackson.annotation.JsonProperty;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.util.Date;
@Document(indexName = SongCommentDocument.INDEX,type = SongCommentDocument.TYPE, createIndex = false)
public class SongCommentDocument {
    public static final String INDEX = "comment";
    public static final String TYPE = "0";

    /**
     * 评论ID
     */
    @Id
    private String id;

    /**
     * 发表评论的用户ID
     */
    @Field(type = FieldType.Text)
    @JsonProperty("user_id")
    private String userId;

    /**
     * 评论对象的ID
     */
    @Field(type = FieldType.Text)
    @JsonProperty("target_id")
    private String targetId;

    /**
     * 评论类型。0：对歌曲的评论；1：对歌单的评论；2：对专辑的评论
     */
    @Field(type = FieldType.Long)
    private Integer type;

    /**
     * 回复评论的ID
     */
    @Field(type = FieldType.Text)
    @JsonProperty("reply_comment_id")
    private String replyCommentId;

    /**
     * 评论内容
     */
    @Field(type = FieldType.Text,searchAnalyzer = "ik_max_word",analyzer = "ik_max_word")
    private String content;

    /**
     * 评论时间
     */
    @Field(type = FieldType.Date)
    @JsonProperty("create_time")
    private Date createTime;

    /**
     * 获取评论ID
     *
     * @return id - 评论ID
     */
    public String getId() {
        return id;
    }

    /**
     * 设置评论ID
     *
     * @param id 评论ID
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取发表评论的用户ID
     *
     * @return user_id - 发表评论的用户ID
     */
    public String getUserId() {
        return userId;
    }

    /**
     * 设置发表评论的用户ID
     *
     * @param userId 发表评论的用户ID
     */
    public void setUserId(String userId) {
        this.userId = userId;
    }

    /**
     * 获取评论对象的ID
     *
     * @return target_id - 评论对象的ID
     */
    public String getTargetId() {
        return targetId;
    }

    /**
     * 设置评论对象的ID
     *
     * @param targetId 评论对象的ID
     */
    public void setTargetId(String targetId) {
        this.targetId = targetId;
    }

    /**
     * 获取评论类型。0：对歌曲的评论；1：对歌单的评论；2：对专辑的评论
     *
     * @return type - 评论类型。0：对歌曲的评论；1：对歌单的评论；2：对专辑的评论
     */
    public Integer getType() {
        return type;
    }

    /**
     * 设置评论类型。0：对歌曲的评论；1：对歌单的评论；2：对专辑的评论
     *
     * @param type 评论类型。0：对歌曲的评论；1：对歌单的评论；2：对专辑的评论
     */
    public void setType(Integer type) {
        this.type = type;
    }

    /**
     * 获取回复评论的ID
     *
     * @return reply_comment_id - 回复评论的ID
     */
    public String getReplyCommentId() {
        return replyCommentId;
    }

    /**
     * 设置回复评论的ID
     *
     * @param replyCommentId 回复评论的ID
     */
    public void setReplyCommentId(String replyCommentId) {
        this.replyCommentId = replyCommentId;
    }

    /**
     * 获取评论内容
     *
     * @return content - 评论内容
     */
    public String getContent() {
        return content;
    }

    /**
     * 设置评论内容
     *
     * @param content 评论内容
     */
    public void setContent(String content) {
        this.content = content;
    }

    /**
     * 获取评论时间
     *
     * @return create_time - 评论时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置评论时间
     *
     * @param createTime 评论时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}